package hottargui.domain;

import java.util.Iterator;

public interface Board {

	/* Responsibilities
	 * a) Return an Iterator to the board
	 * b) Return a tile
	 * c) Calculate Revenue 
	 */


	/** get a iterator to the board.
	 * @return iterator.
	 */
	Iterator<? extends Tile> getBoardIterator();	

	/** return a specific tile.
	 * PreCondition: Position p is valid on the board.
	 * @param p the position on the board that must be returned.
	 * @return the tile at position p.
	 */
	ModifiableTile getTile( Position p );


	/** return the calculated revenue
	 * for a given player based on the Tiles he owns.
	 * @param playerColor the players Color.
	 * @return the amount he gains
	 */
	int getRevenue( PlayerColor playerColor );


}
